package com.jiajia.study.chapter01.nio;

import lombok.extern.slf4j.Slf4j;

import java.nio.ByteBuffer;

/**
 * ByteBuffer 结构
 * @author zjiajia
 * @date 2024/7/4 17:13
 */
@Slf4j
public class TestByteBufferDetail {
    public static void main(String[] args) {
        // 初始化，写模式，capacity 10
        ByteBuffer byteBuffer = ByteBuffer.allocate(10);
        // 写入数据
        byteBuffer.put(new byte[]{'a','b','c','d'});
        // 切换成读模式
        byteBuffer.flip();
        // 读取数据
        byte b1 = byteBuffer.get();
        byte b2 = byteBuffer.get();
        log.info("读取到的数据是：{},{}",(char)b1,(char)b2);
        // 切换成写模式,未读取完会丢失数据
        byteBuffer.clear();
        // 切换成写模式的另外一种方式 ，不会丢失数据
        byteBuffer.compact();
        byteBuffer.rewind();
    }
}
